home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1986-12-15 | 12.6 KB | 390 lines |
- 10 REM Documentation for the Genealogy ON DISPLAY Programs
- 20 REM All data is in the form of DATA statements.
- 30 REM By: Melvin O. Duke. Updated December 1984.
- 40 DATA Genealogy
- 50 DATA User's Manual
- 60 DATA -5
- 70 DATA 1
- 80 INDENT = 0
- 90 DASHES$ = "+"+STRING$(54,45)+"+"
- 100 TRIM.LINE$ = "(Trim-line)"
- 110 REM Program begins here
- 120 READ TITLE$, DOC.NAME$, PAGE.NO, LINE.NO
- 130 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 140 GOSUB 500 'For trim line and heading space
- 150 FOR I = 1 TO 6 : LPRINT : NEXT I
- 160 LPRINT CHR$(14); 'Set Expanded Print
- 170 LPRINT TAB(TAB.POS-2);TITLE$
- 180 LPRINT CHR$(18); 'Return to normal
- 190 FOR I = 1 TO 3 : LPRINT : NEXT I
- 200 LPRINT CHR$(27); "E"; 'Set Emphasized mode
- 210 LPRINT TAB(TAB.POS+12);"ON DISPLAY"
- 220 LPRINT CHR$(27); "F"; 'Return to normal
- 222 LPRINT : LPRINT : LPRINT
- 224 LPRINT TAB(TAB.POS+11);"Version 3.0"
- 230 FOR I = 1 TO 11 : LPRINT : NEXT I
- 240 LPRINT TAB(TAB.POS+10); DOC.NAME$
- 250 LINE.NO = LINE.NO + 27
- 260 '
- 270 READ REPLY$
- 280 IF LEFT$(REPLY$,1) = "." THEN GOSUB 850: GOTO 270
- 290 IF LINE.NO > 44 THEN GOSUB 610
- 300 REM Print the line if not a command
- 303 REM First, change tildes to quotes
- 304 FOR Q = 1 TO LEN(REPLY$)
- 305 IF MID$(REPLY$,Q,1)="~"THEN MID$(REPLY$,Q,1)=CHR$(34)
- 306 NEXT Q
- 310 LPRINT TAB(TAB.POS);REPLY$
- 320 LINE.NO = LINE.NO + 1
- 330 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 340 GOTO 270
- 350 REM Data for the Copyright Page
- 354 DATA ".pa"
- 358 DATA "Anyone may request a copy of these"
- 362 DATA "programs by sending a blank, double-"
- 366 DATA "sided, double-density diskette to the"
- 370 DATA "author of the programs."
- 378 DATA ".sp"
- 382 DATA "An addressed, postage-paid return"
- 386 DATA "mailer must accompany the diskette (no"
- 390 DATA "exceptions, please).
- 394 DATA ".sp"
- 398 DATA "A copy of the programs with documenta-"
- 402 DATA "tion will be sent by return mail."
- 410 DATA ".vt 2"
- 415 DATA "Users are encouraged to copy and share"
- 420 DATA "the programs with others."
- 430 DATA ".vt 6"
- 434 DATA "If you are using these programs, and"
- 438 DATA "finding them of value, your contribution"
- 442 DATA "($35 suggested) will be anticipated."
- 446 DATA ".sp"
- 450 DATA "Melvin O. Duke"
- 454 DATA "P. O. Box 20836"
- 458 DATA "San Jose, CA 95160"
- 462 DATA ".vt 4"
- 466 DATA "Copyright (c) 1983, 1984, 1985, by:"
- 470 DATA "Melvin O. Duke."
- 474 DATA ".sp"
- 478 DATA "All rights reserved."
- 482 '
- 500 REM Top of each page routine
- 510 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 520 LPRINT
- 530 LPRINT TAB(30); TRIM.LINE$
- 540 LPRINT DASHES$ 'Dashes
- 550 FOR I = 1 TO 6
- 560 LPRINT
- 570 NEXT I
- 580 LINE.NO = LINE.NO + 6
- 590 RETURN
- 600 '
- 610 REM Bottom of each page Routine
- 620 IF PAGE.NO < 1 THEN LPRINT : LPRINT : LPRINT : GOTO 740
- 630 LPRINT TAB(TAB.POS); STRING$(40,45) 'on line 46
- 640 LPRINT TAB(TAB.POS+3); TITLE$+" ON DISPLAY. Version 3.0" 'on line 47
- 650 IF PAGE.NO MOD 2 = 1 THEN 690
- 660 LPRINT TAB(TAB.POS);"Page";PAGE.NO;
- 670 LPRINT TAB(TAB.POS+27);"User's Manual"
- 680 GOTO 740
- 690 LPRINT TAB(TAB.POS); "User's Manual";
- 700 IF PAGE.NO < 10 THEN DELTA = 34
- 710 IF PAGE.NO > 9 THEN DELTA = 33
- 720 IF PAGE.NO > 99 THEN DELTA = 32
- 730 LPRINT TAB(TAB.POS+DELTA); "Page"; PAGE.NO 'on line 48
- 740 LPRINT : LPRINT : LPRINT
- 750 LPRINT DASHES$ 'dashes after 51
- 760 LPRINT TAB(30); TRIM.LINE$
- 770 LPRINT CHR$(12);
- 780 PAGE.NO = PAGE.NO + 1
- 790 LINE.NO = 1
- 800 IF REPLY$ = ".eof" THEN 820 'Bypass after last page
- 810 GOSUB 500 'For top of next page
- 820 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 830 RETURN
- 840 '
- 850 REM Command Processor
- 860 IF LEFT$(REPLY$,3) = ".h1" THEN 960
- 870 IF LEFT$(REPLY$,3) = ".h2" THEN 1100
- 880 IF LEFT$(REPLY$,3) = ".h3" THEN 1210
- 890 IF LEFT$(REPLY$,3) = ".sp" THEN 1320
- 900 IF LEFT$(REPLY$,4) = ".eof" THEN 1370
- 910 IF LEFT$(REPLY$,3) = ".pa" THEN 1410
- 915 IF LEFT$(REPLY$,3) = ".pn" THEN PAGE.NO = VAL(RIGHT$(REPLY$,LEN(REPLY$)-3)) : RETURN
- 920 IF LEFT$(REPLY$,3) = ".vt" THEN 1480
- 930 IF LEFT$(REPLY$,3) = ".pk" THEN 1590
- 940 IF LEFT$(REPLY$,3) = ".in" THEN 1720
- 950 STOP
- 960 REM Head 1 Processor
- 970 FOR I = LINE.NO TO 44
- 980 LPRINT
- 990 NEXT I
- 1000 GOSUB 610 'Bottom of page Routine
- 1010 IF PAGE.NO MOD 2 = 0 THEN GOSUB 1410 'For h1 on Odd pages
- 1020 LPRINT CHR$(14); 'Set expanded print
- 1030 IF PAGE.NO MOD 2 = 0 THEN ADJUST = -4 ELSE ADJUST = -7
- 1040 LPRINT TAB(TAB.POS+ADJUST); RIGHT$(REPLY$,LEN(REPLY$)-4)
- 1050 LPRINT CHR$(18); 'Return to normal
- 1060 LINE.NO = LINE.NO+1
- 1070 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 1080 RETURN
- 1090 '
- 1100 REM Head 2 Processor
- 1110 IF LINE.NO = 7 THEN 1130 'skip spacing if at top of page
- 1120 IF LINE.NO > 43 THEN GOSUB 1410 ELSE LPRINT:LPRINT:LINE.NO = LINE.NO+2
- 1130 LPRINT CHR$(27); "E"; 'Set emphasized print
- 1140 LPRINT TAB(TAB.POS); RIGHT$(REPLY$,LEN(REPLY$)-4)
- 1150 LPRINT CHR$(27); "F"; 'Return to normal
- 1160 LPRINT
- 1170 LINE.NO = LINE.NO + 2
- 1180 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 1190 RETURN
- 1200 '
- 1210 REM Head 3 Processor
- 1220 IF LINE.NO = 7 THEN 1240 'skip spacing if at top of page
- 1230 IF LINE.NO > 43 THEN GOSUB 1410 ELSE LPRINT:LPRINT:LINE.NO = LINE.NO+2
- 1240 LPRINT CHR$(27); "E"; 'Set emphasized print
- 1250 LPRINT TAB(TAB.POS); RIGHT$(REPLY$,LEN(REPLY$)-4)
- 1260 LPRINT CHR$(27); "F"; 'Return to normal
- 1270 LPRINT
- 1280 LINE.NO = LINE.NO + 2
- 1290 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 1300 RETURN
- 1310 '
- 1320 REM Single Space Processor
- 1330 IF LINE.NO = 7 THEN 1350
- 1340 IF LINE.NO > 44 THEN GOSUB 1410 ELSE LPRINT : LINE.NO = LINE.NO + 1
- 1350 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 1360 RETURN
- 1370 REM End of File Processor
- 1380 GOSUB 1410 'Bottom of Page
- 1390 LPRINT CHR$(12);
- 1400 GOTO 3920
- 1410 REM Page Eject Processor
- 1420 FOR I = LINE.NO TO 44
- 1430 LPRINT
- 1440 LINE.NO = LINE.NO + 1
- 1450 NEXT I
- 1460 GOSUB 610 'Bottom of Page Processing
- 1470 RETURN
- 1480 REM Vertical Tab Processor
- 1490 IF LINE.NO = 7 THEN 1580
- 1500 IF LINE.NO > 44 THEN GOSUB 610 'End of page
- 1510 QTY = VAL(RIGHT$(REPLY$,LEN(REPLY$)-3))
- 1520 FOR I = 1 TO QTY
- 1530 LPRINT
- 1540 LINE.NO = LINE.NO + 1
- 1550 IF LINE.NO > 44 THEN I = QTY
- 1560 NEXT I
- 1570 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 1580 RETURN
- 1590 REM Pack Processor
- 1600 IF LINE.NO > 44 THEN GOSUB 610
- 1610 IF TAB.POS = 8 THEN ADJUST = 4
- 1620 IF TAB.POS = 13 THEN ADJUST = 7
- 1630 TAB.POS = TAB.POS + ADJUST + INDENT
- 1640 LPRINT CHR$(15); 'Packed printing
- 1650 WIDTH "lpt1:", 132 'set condensed width
- 1660 LPRINT TAB(TAB.POS); RIGHT$(REPLY$,LEN(REPLY$)-3)
- 1670 LPRINT CHR$(18); 'Return to normal
- 1680 WIDTH "lpt1:", 80 'return to normal
- 1690 LINE.NO = LINE.NO + 1
- 1700 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 1710 RETURN
- 1720 REM Indent Processor
- 1730 INDENT = VAL(RIGHT$(REPLY$,LEN(REPLY$)-3))
- 1740 RETURN
- 2000 DATA ".h1 INTRODUCTION"
- 2010 DATA ".pn 1"
- 2020 DATA ".h2 OVERVIEW"
- 2030 DATA "The Genealogy ON DISPLAY programs pro-"
- 2040 DATA "vide the user with the capability to"
- 2050 DATA "create and maintain data files which"
- 2060 DATA "contain information about his or her"
- 2070 DATA "ancestors and relatives, to interro-"
- 2080 DATA "gate the contents of the files, and to"
- 2090 DATA "obtain printouts of pedigree charts,"
- 2100 DATA "family group sheets, and descendents"
- 2110 DATA "charts in standard formats, using the"
- 2120 DATA "information from those files."
- 2130 DATA ".sp"
- 2140 DATA "Other than the total size of the files,"
- 2150 DATA "there is no practical limit to the"
- 2160 DATA "number of generations contained in the"
- 2170 DATA "files, or capable of being displayed or"
- 2180 DATA "printed."
- 2190 DATA ".h2 CAPABILITIES"
- 2200 DATA "Following are the capabilities of the"
- 2210 DATA "the group of programs known as the"
- 2220 DATA "Genealogy ON DISPLAY programs."
- 2230 DATA ".pa"
- 2240 DATA ".h3 Display the Genealogy."
- 2250 DATA "The program 'display' is one of the"
- 2260 DATA "four principal programs in the Genealogy"
- 2270 DATA "ON DISPLAY set of programs. (Note: All"
- 2280 DATA "of the other programs supplement these"
- 2290 DATA "four principal programs.)"
- 2300 DATA ".sp"
- 2310 DATA "By using the 'display' program, a user"
- 2320 DATA "may display personal information, pedi-"
- 2330 DATA "grees, and family group information for"
- 2340 DATA "any person whose records are in the data"
- 2350 DATA "files."
- 2360 DATA ".h2 Print Pedigree Charts (Family Trees)"
- 2370 DATA "The program 'pedigree' is the second of"
- 2380 DATA "the four principal programs in the"
- 2390 DATA "Genealogy ON DISPLAY set of programs."
- 2400 DATA ".sp"
- 2410 DATA "By using this program, a user may obtain"
- 2420 DATA "a printout of a pedigree chart (family"
- 2430 DATA "tree) for any person whose records are"
- 2440 DATA "in the data files."
- 2450 DATA ".pa"
- 2460 DATA ".h2 Print Family Group Sheets"
- 2470 DATA "The program 'family' is the third of the"
- 2480 DATA "four principal programs in the Genealogy"
- 2490 DATA "ON DISPLAY set of programs."
- 2500 DATA ".sp
- 2510 DATA "By using this program, a user may obtain"
- 2520 DATA "a printout of a family group sheet for"
- 2530 DATA "any person whose records are in the data"
- 2540 DATA "files."
- 2550 DATA ".h2 Produce Descendents Charts"
- 2560 DATA "The program 'descend' is the fourth of"
- 2570 DATA "the four principal programs in the"
- 2580 DATA "Genealogy ON DISPLAY set of programs."
- 2590 DATA ".sp
- 2600 DATA "By using this program, a user may dis-"
- 2610 DATA "play (and optionally obtain a printout)"
- 2620 DATA "of the descendents of any person whose"
- 2630 DATA "records are in the data files."
- 2640 DATA ".h3 Create the Data Files."
- 2650 DATA "Three programs, the 'creatper', the"
- 2660 DATA "'creatmar', and the 'creatord' programs,"
- 2670 DATA "permit creation of the records in the"
- 2680 DATA "'persfile', the 'marrfile', and the"
- 2690 DATA "'ordfile' respectively."
- 2700 DATA ".pa"
- 2710 DATA ".h3 Update the Data Files."
- 2720 DATA "Three programs, the 'updatper', the"
- 2730 DATA "'updatmar', and the 'updatord' programs,"
- 2740 DATA "permit update of the records in the"
- 2750 DATA "'persfile', the 'marrfile', and the"
- 2760 DATA "'ordfile' respectively."
- 2770 DATA ".h3 Create the Indexes."
- 2780 DATA "Two programs, the 'indexpc' and the"
- 2790 DATA "'indexmar' programs, permit creation of"
- 2800 DATA "the indexes 'pcindex' and 'mindex'"
- 2810 DATA "respectively."
- 2820 DATA ".sp"
- 2830 DATA "Note: These two indexes are essential"
- 2840 DATA "to the 'display', 'pedigree', and"
- 2850 DATA "'family' programs, as they provide"
- 2860 DATA "all of the linkages between persons,"
- 2870 DATA "ancestors, and families."
- 2880 DATA ".h3 List the Records in the Files."
- 2890 DATA "Two programs, the 'listper' and the"
- 2900 DATA "'listmar' programs, provide listings"
- 2910 DATA "of the records in the 'persfile' and"
- 2920 DATA "'marrfile', respectively. These are"
- 2930 DATA "one-line summary listings of the"
- 2940 DATA "records in the files."
- 2950 DATA ".pa"
- 2960 DATA ".h3 Printing the Contents of the Files."
- 2970 DATA "Two programs, the 'printper', and the"
- 2980 DATA "'printmar' programs, provide for print-"
- 2990 DATA "ing individual records or for complete"
- 3000 DATA "printouts of the files. The 'printper"
- 3010 DATA "program provides a combined printout"
- 3020 DATA "of the 'persfile' and the 'ordfile'."
- 3030 DATA "The 'printmar' program provides a"
- 3040 DATA "printout of the 'marrfile'."
- 3050 DATA ".h3 Alphabetical Lists."
- 3060 DATA "Two programs, the 'alphaper', and the"
- 3070 DATA "'alphamar' programs, provide alphabetical"
- 3080 DATA "listings of the persons in the Persons"
- 3090 DATA "File, and marriages in the Marriages"
- 3100 DATA "File, respectively. Note: These two"
- 3110 DATA "lists are very helpful in permitting the"
- 3120 DATA "user to locate records of persons and of"
- 3130 DATA "marriages."
- 3140 DATA ".h3 Parent/Child Index List"
- 3150 DATA "One program, the 'listpci' program,"
- 3160 DATA "provides a list of all persons who are"
- 3170 DATA "parents, together with the children of"
- 3180 DATA "those persons."
- 3190 DATA ".pa"
- 3200 DATA ".h2 BENEFITS/ADVANTAGES"
- 3210 DATA "The Genealogy ON DISPLAY programs pro-"
- 3220 DATA "vide an organized, cohesive set of"
- 3230 DATA "programs, to permit a user to create and"
- 3240 DATA "maintain that person's genealogical"
- 3250 DATA "information."
- 3260 DATA ".sp"
- 3270 DATA "One major advantage of this technique is"
- 3280 DATA "that the user only enters information a"
- 3290 DATA "single time, in a single place. Hence,"
- 3300 DATA "there is never any discrepancy between"
- 3310 DATA "separate reportings of the data."
- 3320 DATA ".sp"
- 3330 DATA "The programs use the relationships be-"
- 3340 DATA "tween persons for extracting and report-"
- 3350 DATA "ing the data in meaningful formats."
- 3360 DATA ".sp"
- 3370 DATA "Since most genealogical information is"
- 3380 DATA "not complete, whenever new information"
- 3390 DATA "is obtained, the user may readily add"
- 3400 DATA "that new information (or change any"
- 3410 DATA "erroneous old information) as the user"
- 3420 DATA "desires."
- 3430 DATA ".h2 RESULTS"
- 3440 DATA "The final results are a well-organized"
- 3450 DATA "set of data files and indices, which"
- 3460 DATA "permit a user to obtain related infor-"
- 3470 DATA "mation in formats which are meaningful"
- 3480 DATA "to that user."
- 3490 DATA ".pa"
- 3500 DATA "Pedigree Charts, Family Group Sheets and"
- 3510 DATA "Descendents Charts, as well as Personal"
- 3520 DATA "information about each individual are"
- 3530 DATA "are available upon demand, either on the"
- 3540 DATA "printer or on the display."
- 3550 DATA ".h2 REQUIREMENTS"
- 3560 DATA ".h3 Hardware Requirements."
- 3570 DATA ".sp"
- 3580 DATA "IBM PCjr, PC, or PC/XT, with:"
- 3590 DATA ".sp"
- 3600 DATA " One Double-sided Diskette Drive."
- 3610 DATA ".sp"
- 3620 DATA " Either the IBM Graphics Printer, the"
- 3630 DATA " IBM Matrix Printer (or equivalents)."
- 3640 DATA ".sp"
- 3650 DATA " Note: The IBM Graphics Printer"
- 3660 DATA " and the IBM Matrix Printer"
- 3670 DATA " provide for condensed printing"
- 3680 DATA " of Pedigree Charts and Family"
- 3690 DATA " Group Sheets."
- 3700 DATA ".sp"
- 3710 DATA " For full-sized printouts of the"
- 3720 DATA " Pedigree Charts and Family"
- 3730 DATA " Group Sheets, a 132 character"
- 3740 DATA " (10 char/in) printer is required."
- 3750 DATA ".sp"
- 3760 DATA " At least 96K of Memory (128 K is"
- 3770 DATA " recommended)."
- 3780 DATA ".sp"
- 3790 DATA " Either the IBM Color Display,"
- 3800 DATA " the IBM Monochrome Display (or"
- 3810 DATA " equivalents)."
- 3820 DATA ".pa"
- 3830 DATA ".h3 Software Requirements."
- 3840 DATA ".sp"
- 3850 DATA "IBM PC-DOS."
- 3860 DATA " Version 2.1 (or Version 2.0 on"
- 3870 DATA " the IBM PC or the IBM PC/XT).
- 3880 DATA ".sp"
- 3890 DATA "BASIC"
- 3900 DATA " (on Cartridge or Diskette)."
- 3910 DATA ".eof"
- 3920 END
-